home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d2 / romscan.arc / ROMSCAN.C < prev    next >
Text File  |  1990-07-03  |  1KB  |  53 lines

  1.  
  2. /*-------------------------------------------------------------------------*/
  3. /*        ROMScan.C - Searches PC/XT/AT systems for add-on ROMS then displays  */
  4. /*                     starting addresses and sizes of ROMs.                         */
  5. /*        Rick Allen                                                        */
  6. /*-------------------------------------------------------------------------*/
  7.  
  8.  
  9. typedef unsigned char  byte;
  10. typedef unsigned int      word;
  11.  
  12.  
  13.     struct  ROM    {
  14.         word    Signature;
  15.         byte    SizeIndex;
  16.         word    filler;
  17.         char    Data;
  18.     };
  19.  
  20.     struct ROM huge  *ROMPtr;
  21.     byte huge  *Addr;
  22.     char huge  *ptr;
  23.     byte  x;
  24.     word  Size;
  25.  
  26. /*-------------------------------------------------------------------------*/
  27.  
  28. main()
  29.  
  30. {
  31.    clrscr();
  32.     Addr = (byte huge *)0xC0000000;                    /* START SEARCH ADDRESS */
  33.  
  34.     while (Addr < (byte huge *)0xF0000000) {
  35.         ROMPtr = (struct ROM huge *)Addr;
  36.         if (ROMPtr->Signature == 0xAA55)    {            /* 0xAA55 IS ROM SIGNATURE */
  37.  
  38.             textattr(11);
  39.             Size = ROMPtr->SizeIndex * 512;          /* PRINT ADDRESS RANGE */
  40.             cprintf("\nROM at %Fp to %Fp\n\r", Addr, Addr+Size-1);
  41.  
  42.             textattr(31);
  43.             ptr = &ROMPtr->Data;                         /* PRINT ASCII DATA OF ROM */
  44.             for (x=0; x<160; x++) {
  45.                 (*ptr>=33 && *ptr<=127)  ? putch(*ptr) : putch(' ');
  46.                 ptr++;
  47.             }
  48.         }
  49.         Addr += 2048;                                        /* INCREMENT Addr BY 2k    */
  50.     }
  51. }
  52.  
  53.